package com.example.test4

import android.annotation.SuppressLint
import android.content.Intent
import android.os.Bundle
import android.widget.Button
import android.widget.ImageView
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import com.example.test4.model.User
import java.io.File

const val FIRST_MSG = "FIRST_MSG"
const val SECOND_MSG = "SECOND_MSG"
const val REQUEST_GAME = 200 // 游戏请求码

class FirstActivity : AppCompatActivity() {
    private lateinit var user: User
    private val REQUEST_AMEND = 100 // 修改界面请求码

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_first)

        // 初始化User对象
        user = User()
        // 初始显示数据
        updateUI()

        // 点击修改按钮，跳转到修改界面
        findViewById<Button>(R.id.button_amend).setOnClickListener {
            val intent = Intent(this, AmendActivity::class.java)
            intent.putExtra("user", user) // 传递当前User对象到修改界面
            startActivityForResult(intent, REQUEST_AMEND)
        }

        // 开始游戏按钮点击事件
        findViewById<Button>(R.id.button_begin).setOnClickListener {
            val intent = Intent(this, MainActivity::class.java)
            intent.putExtra("currentMaxScore", user.score)
            startActivityForResult(intent, REQUEST_GAME)
        }
    }

    // 接收返回的数据（修改界面和游戏界面）
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)

        // 处理修改界面返回的数据
        if (requestCode == REQUEST_AMEND && resultCode == RESULT_OK) {
            user = data?.getParcelableExtra("updatedUser") ?: user
            updateUI() // 刷新UI，包括图片
        }
        // 处理游戏界面返回的分数
        else if (requestCode == REQUEST_GAME && resultCode == 2) {
            data?.let {
                val gameScore = it.getIntExtra(FIRST_MSG, 0)
                if (gameScore > user.score) {
                    user.score = gameScore
                    updateUI()
                }
            }
        }
    }

    // 更新首界面UI（新增图片显示逻辑）
    private fun updateUI() {
        // 更新文本信息
        findViewById<TextView>(R.id.textView_name).text = "姓名：${user.name}"
        findViewById<TextView>(R.id.textView_sex).text = "性别：${user.gender}"
        findViewById<TextView>(R.id.textView_phone).text = "电话：${user.phone}"
        findViewById<TextView>(R.id.textView_love).text = "爱好：${user.hobbies}"
        findViewById<TextView>(R.id.textView_mail).text = "邮箱：${user.mail}"
        findViewById<TextView>(R.id.textView_score).text = "最高分：${user.score}"

        // 更新图片显示
        val avatarIv = findViewById<ImageView>(R.id.imageView) // 假设首界面有一个id为imageView的ImageView
        if (user.photoPath != null) {
            val photoFile = File(user.photoPath)
            if (photoFile.exists()) {
                // 显示图片
                avatarIv.setImageURI(android.net.Uri.fromFile(photoFile))
            } else {
                // 图片路径存在但文件不存在时，清空显示
                avatarIv.setImageDrawable(null)
            }
        } else {
            // 没有图片路径时，清空显示
            avatarIv.setImageDrawable(null)
        }
    }
}